<?php 
/**
 * Copyright (c) 2010, Slawomir Mazur <mazursllawek@gmail.com>
 * 
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions 
 * are met:
 * 
 * o Redistributions of source code must retain the above copyright notice, 
 *   this list of conditions and the following disclaimer.
 * o Redistributions in binary form must reproduce the above copyright notice,
 *   this list of conditions and the following disclaimer in the documentation
 *   and/or other materials provided with the distribution.
 * o Neither the name of the Softisland nor the names of its contributors
 *   may be used to endorse or promote products derived from this software
 *   without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
/**
 * Enter description here...
 *
 * @package     Admin
 * @subpackage  Admin_Dashboard
 * @copyright   Slawomir Mazur (c) 2010 (http://www.zend.com/zce.php?c=ZEND011643)
 * @license     http://www.opensource.org/licenses/bsd-license.php
 * @author      Slawomir Mazur <mazursllawek@gmail.com>
 */
?>

<div><?php echo $this->messenger() ?></div>

<h1 class="page-title">Upload</h1>

<form id="file_upload" action="<?php echo $this->baseUrl('admin/dashboard/upload-post') ?>" method="post" enctype="multipart/form-data">
    <ul class="form-list">
		<li class="row clear">
			<input type="file" id="library" name="library" multiple>
			<button id="upload" class="button action" disabled="disabled"><span><span>Upload</span></span></button>
		</li>
	</ul>
</form>

<table id="files"></table>

<script type="text/javascript">
//<![CDATA[
$(function () {
    $('#file_upload').fileUploadUI({
    	uploadTable: $('#files'),
        downloadTable: $('#files'),
        buildUploadRow: function (files, index) {
    		return $('<tr id="row_' + index + '">' +
                    '<td>' + files[index].name + '</td>' +
                    '<td class="file_upload_prog"><div><div></div></div></td>' +
                    '<td class="file_upload_start">' +
                    '<button class="button action" title="Start Upload">' +
                    '<span><span>Start Upload</span></span>' +
                    '</button>&nbsp;&nbsp;</td>' +
                    '<td class="file_upload_cancel">' +
                    '<button class="button" title="Cancel">' +
                    '<span><span>Cancel</span></span>' +
                    '</button></td></tr>');
        },
        buildDownloadRow: function (response) {
            if ('error' == response.status) {
            	return $('<tr><td style="color: red;">' + response.message + '</td></tr>');
            } else {
                var remove = '<a onclick="deleteFile(' + response.libraryId + ', this); return false;" href="#">delete</a>';
                var read = '<a href="' + '<?php echo $this->baseUrl('admin/library/read') ?>' + '/id/' + response.libraryId + '">read</a>';
                
            	return $('<tr><td style="color: green;">' + response.message + read + remove + '<span id="ajaxLoader" class="clear">Deleting please wait...</span></td></tr>');
            }
        },
        beforeSend: function (event, files, index, xhr, handler, callBack) {
            handler.uploadRow.find('.file_upload_start button').click(callBack);
        },
        onProgress: function (event, files, index, xhr, handler) {
            var progressElemet = $('table#files tr#row_' + index + ' td.file_upload_prog div div');
            var progress = 2 * parseInt(event.loaded / event.total * 100, 10);
            
            progressElemet.css({ width: progress + 'px' });
        },
		onChange: function(event) {
            $('#upload').removeAttr('disabled');
        }
    });

    $('#upload').click(function() {
        $('.file_upload_start button').click();
        return false;
    });
});

function deleteFile(libraryId, link)
{ 
	if (confirm('You sure you want to delete this library?')) {
		$.ajax({
            type: 'post',
    		url: '<?php echo $this->baseUrl('admin/library/delete') ?>',
    		data: 'id=' + libraryId,
    		dataType: 'json',
    		beforeSend: function() {
    			$('#ajaxLoader').show();
    		},
    		success: function (response) {
    			if ('error' == response.status) {
    				alert(response.message);
    				return;
    			}
				$(link).parent().parent().remove();
    		},
    		error: function() {
    			
    		},
    		complete: function() {
    			$('#ajaxLoader').hide();
    		}
		});
	}
	
	return false;
}

//]]>
</script>